set nocompatible # 不要魔法旧版本Vi行为使用Vim自身的特性
set encoding=utf-8
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1  " 读取文件时 使用的编码表格
set termencoding=utf-8  " vim和终端交互时的编码
set cul "高亮光标所在行
set cuc " 在当前列添加一个垂直高亮条纹
set shortmess=atI   " 启动的时候不显示那个援助乌干达儿童的提示
set go=             " 不要图形按钮
set guifont=Courier_New:h10:cANSI   " 设置字体
set ruler           " 显示标尺
set showcmd         " 输入的命令显示出来，看的清楚些
set whichwrap+=<,>,h,l   " 允许backspace和光标键跨越行边界(不建议)
set scrolloff=3     " 光标移动到buffer的顶部和底部时保持3行距离
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}   "状态行显示的内容
set laststatus=2    " 启动显示状态行(1),总是显示状态行(2)
set foldenable      " 允许折叠
set foldmethod=manual   " 手动折叠
set nocompatible  "去掉讨厌的有关vi一致性模式，避免以前版本的一些bug和局限
set nocompatible " 禁用 Vim 的兼容模式，使其更符合 Vim 本身的特性，而不是 Vi。
set viminfo+=! " 在 viminfo 文件中记录所有注册表的内容，包括未保存的缓冲区。
set iskeyword+=_,$,@,%,#,- " 添加到关键字字符集中，这样在进行单词相关操作时，这些字符也会被视为单词的一部分。
set autoindent " 自动缩进新行，基于前一行的缩进
set cindent " 启用 C 语言风格的自动缩进。
set tabstop=4 " 设置制表符的宽度为 4 个空格。
set softtabstop=4 " 设置软制表符的宽度为 4 个空格，主要用于按 Tab 键时的缩进。
set shiftwidth=4 " 设置每次自动缩进时使用的空格数为 4
set expandtab " 在按 Tab 键时，Vim 会根据上下文智能地插入空格或制表符。
set smarttab
set number
set history=1000
set hlsearch " 高亮显示搜索匹配的文本。
set incsearch " 在输入搜索模式时，Vim 会实时显示匹配的文本。
set cmdheight=2 " 设置命令行的行数为 2，增加命令行的可视空间。
set cursorcolumn " 高亮显示光标所在的列。
set clipboard+=unnamed "共享剪贴板
set autowrite "自动保存
set ruler                   " 打开状态栏标尺
set magic                   " 设置魔术
set guioptions-=T           " 隐藏工具栏
set guioptions-=m           " 隐藏菜单栏
set foldcolumn=0 " 隐藏折叠列，使编辑器界面更加简洁
set foldmethod=indent " 根据代码的缩进来决定哪些部分可以折叠，这对于大多数编程语言都非常有用。
set foldlevel=3 " 初始时折叠到第 3 层，这样可以减少显示的行数，使代码结构更加清晰
set nocompatible  " 不要使用vi的键盘模式，而是vim自己的
set noeb " 去掉输入错误的提示声音
set confirm " 在处理未保存或只读文件的时候，弹出确认
set nobackup " 禁用备份文件的生成。这意味着当你保存文件时，Vim 不会创建一个备份文件来保留编辑前的内容
set noswapfile "禁止生成临时文件
set ignorecase "搜索忽略大小写
set linespace=0 " 设置行间距为 0。行间距是指在文本行之间添加的额外空白行数。设置为 0 表示没有额外的空白行。
set wildmenu " 增强模式中的命令行自动完成操作 会显示一个菜单，列出所有可能的自动完成功能。
set backspace=2  " 使回格键（backspace）正常处理indent, eol, start等
set whichwrap+=<,>,h,l " 允许backspace和光标键跨越行边界
set mouse=a " 可以在buffer的任何地方使用鼠标（类似office中在工作区双击鼠标定位）
set selection=exclusive " 选择模式，在visual模式下按下鼠标左键，可以选择文本块。
set selectmode=mouse,key " 设置选择模式为鼠标或键盘。
set report=0 " 关闭文件被改变的报告
set fillchars=vert:\ ,stl:\ ,stlnc:\ " 在被分割的窗口间显示空白，便于阅读
set showmatch  " 高亮显示匹配的括号
set matchtime=1 " 匹配括号高亮的时间（单位是十分之一秒）
set scrolloff=3 " 光标移动到buffer的顶部和底部时保持3行距离
 set wrap " 自动换行
 set tw=0 " 设置文本宽度为0，即不折行
 " set nofoldenable " 禁用折叠
 " set nowrap " 禁用换行
 set indentexpr=  " 禁用缩进表达式 现在是空值
 set backspace=indent,eol,start " 允许退格键删除自动缩进和换行符
 set foldmethod=indent " 根据代码的缩进来决定哪些部分可以折叠，这对于大多数编程语言都非常有用。
 set foldlevel=99 " 初始时折叠到第 99 层，这样可以减少显示的行数，使代码结构更加清晰
 set autoread “ 自动读取文件，缓冲区内容自动更新
"set completeopt=longest,menu " 自动补全，最长匹配优先，菜单显示补全选项
"set completeopt=menu,preview " 自动补全，菜单显示补全选项，预览补全选项
set laststatus=2  " 总是显示状态栏
set t_Co=256      " 支持 256 色（如果终端支持）


